46,48d45
< -- Blob ores
< -- These first to avoid other ores in blobs
< 
51c48,51
< function default.register_mgv6_blob_ores()
---
> function default.register_mgv6_ores()
> 
> 	-- Blob ore
> 	-- These first to avoid other ores in blobs
136a137,407
> 
> 	-- Scatter ores
> 
> 	-- Coal
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_coal",
> 		wherein        = "default:stone",
> 		clust_scarcity = 8 * 8 * 8,
> 		clust_num_ores = 9,
> 		clust_size     = 3,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_coal",
> 		wherein        = "default:stone",
> 		clust_scarcity = 8 * 8 * 8,
> 		clust_num_ores = 8,
> 		clust_size     = 3,
> 		y_min          = -31000,
> 		y_max          = 64,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_coal",
> 		wherein        = "default:stone",
> 		clust_scarcity = 24 * 24 * 24,
> 		clust_num_ores = 27,
> 		clust_size     = 6,
> 		y_min          = -31000,
> 		y_max          = 0,
> 	})
> 
> 	-- Iron
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_iron",
> 		wherein        = "default:stone",
> 		clust_scarcity = 9 * 9 * 9,
> 		clust_num_ores = 12,
> 		clust_size     = 3,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_iron",
> 		wherein        = "default:stone",
> 		clust_scarcity = 7 * 7 * 7,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = -31000,
> 		y_max          = 0,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_iron",
> 		wherein        = "default:stone",
> 		clust_scarcity = 24 * 24 * 24,
> 		clust_num_ores = 27,
> 		clust_size     = 6,
> 		y_min          = -31000,
> 		y_max          = -64,
> 	})
> 
> 	-- Copper
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_copper",
> 		wherein        = "default:stone",
> 		clust_scarcity = 9 * 9 * 9,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_copper",
> 		wherein        = "default:stone",
> 		clust_scarcity = 12 * 12 * 12,
> 		clust_num_ores = 4,
> 		clust_size     = 3,
> 		y_min          = -63,
> 		y_max          = -16,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_copper",
> 		wherein        = "default:stone",
> 		clust_scarcity = 9 * 9 * 9,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = -31000,
> 		y_max          = -64,
> 	})
> 
> 	-- Tin
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_tin",
> 		wherein        = "default:stone",
> 		clust_scarcity = 10 * 10 * 10,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_tin",
> 		wherein        = "default:stone",
> 		clust_scarcity = 13 * 13 * 13,
> 		clust_num_ores = 4,
> 		clust_size     = 3,
> 		y_min          = -127,
> 		y_max          = -32,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_tin",
> 		wherein        = "default:stone",
> 		clust_scarcity = 10 * 10 * 10,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = -31000,
> 		y_max          = -128,
> 	})
> 
> 	-- Gold
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_gold",
> 		wherein        = "default:stone",
> 		clust_scarcity = 13 * 13 * 13,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_gold",
> 		wherein        = "default:stone",
> 		clust_scarcity = 15 * 15 * 15,
> 		clust_num_ores = 3,
> 		clust_size     = 2,
> 		y_min          = -255,
> 		y_max          = -64,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_gold",
> 		wherein        = "default:stone",
> 		clust_scarcity = 13 * 13 * 13,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = -31000,
> 		y_max          = -256,
> 	})
> 
> 	-- Mese crystal
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_mese",
> 		wherein        = "default:stone",
> 		clust_scarcity = 14 * 14 * 14,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_mese",
> 		wherein        = "default:stone",
> 		clust_scarcity = 18 * 18 * 18,
> 		clust_num_ores = 3,
> 		clust_size     = 2,
> 		y_min          = -255,
> 		y_max          = -64,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_mese",
> 		wherein        = "default:stone",
> 		clust_scarcity = 14 * 14 * 14,
> 		clust_num_ores = 5,
> 		clust_size     = 3,
> 		y_min          = -31000,
> 		y_max          = -256,
> 	})
> 
> 	-- Diamond
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_diamond",
> 		wherein        = "default:stone",
> 		clust_scarcity = 15 * 15 * 15,
> 		clust_num_ores = 4,
> 		clust_size     = 3,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_diamond",
> 		wherein        = "default:stone",
> 		clust_scarcity = 17 * 17 * 17,
> 		clust_num_ores = 4,
> 		clust_size     = 3,
> 		y_min          = -255,
> 		y_max          = -128,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:stone_with_diamond",
> 		wherein        = "default:stone",
> 		clust_scarcity = 15 * 15 * 15,
> 		clust_num_ores = 4,
> 		clust_size     = 3,
> 		y_min          = -31000,
> 		y_max          = -256,
> 	})
> 
> 	-- Mese block
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:mese",
> 		wherein        = "default:stone",
> 		clust_scarcity = 36 * 36 * 36,
> 		clust_num_ores = 3,
> 		clust_size     = 2,
> 		y_min          = 1025,
> 		y_max          = 31000,
> 	})
> 
> 	minetest.register_ore({
> 		ore_type       = "scatter",
> 		ore            = "default:mese",
> 		wherein        = "default:stone",
> 		clust_scarcity = 36 * 36 * 36,
> 		clust_num_ores = 3,
> 		clust_size     = 2,
> 		y_min          = -31000,
> 		y_max          = -1024,
> 	})
142c413,416
< function default.register_blob_ores()
---
> function default.register_ores()
> 
> 	-- Blob ore
> 	-- These first to avoid other ores in blobs
144a419
> 	-- This first to avoid clay in sand blobs
191c466
< 			"floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
---
> 			"floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
215,216c490
< 			"rainforest", "rainforest_swamp", "floatland_grassland",
< 			"floatland_coniferous_forest"}
---
> 			"rainforest", "rainforest_swamp", "floatland_coniferous_forest"}
245c519
< 			"floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
---
> 			"floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
247,248d520
< end
< 
250,253c522
< -- Scatter ores
< -- All mapgens
< 
< function default.register_ores()
---
> 	-- Scatter ores
1178a1448
> -- Used when mgv7 'biomerepeat' flag is false
1180,1202c1450
< function default.register_floatland_biomes(floatland_level, shadow_limit)
< 
< 	-- Coniferous forest
< 
< 	minetest.register_biome({
< 		name = "floatland_coniferous_forest",
< 		--node_dust = "",
< 		node_top = "default:dirt_with_grass",
< 		depth_top = 1,
< 		node_filler = "default:dirt",
< 		depth_filler = 3,
< 		--node_stone = "",
< 		--node_water_top = "",
< 		--depth_water_top = ,
< 		--node_water = "",
< 		--node_river_water = "",
< 		--node_riverbed = "",
< 		--depth_riverbed = ,
< 		y_min = floatland_level + 2,
< 		y_max = 31000,
< 		heat_point = 50,
< 		humidity_point = 70,
< 	})
---
> -- TODO Temporary simple biomes to be replaced by special floatland biomes later.
1204c1452
< 	-- Grassland
---
> function default.register_floatland_biomes(floatland_level, shadow_limit)
1220c1468
< 		y_min = floatland_level + 2,
---
> 		y_min = floatland_level + 4,
1223,1245c1471
< 		humidity_point = 35,
< 	})
< 
< 	-- Sandstone desert
< 
< 	minetest.register_biome({
< 		name = "floatland_sandstone_desert",
< 		--node_dust = "",
< 		node_top = "default:sand",
< 		depth_top = 1,
< 		node_filler = "default:sand",
< 		depth_filler = 1,
< 		node_stone = "default:sandstone",
< 		--node_water_top = "",
< 		--depth_water_top = ,
< 		--node_water = "",
< 		--node_river_water = "",
< 		--node_riverbed = "",
< 		--depth_riverbed = ,
< 		y_min = floatland_level + 2,
< 		y_max = 31000,
< 		heat_point = 50,
< 		humidity_point = 0,
---
> 		humidity_point = 50,
1248,1249d1473
< 	-- Floatland ocean / underground
< 
1251c1475
< 		name = "floatland_ocean",
---
> 		name = "floatland_grassland_ocean",
1265c1489
< 		y_max = floatland_level + 1,
---
> 		y_max = floatland_level + 3,
1383c1607
< 			"floatland_grassland", "floatland_coniferous_forest"},
---
> 			"floatland_grassland"},
1497c1721
< 		biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
---
> 		biomes = {"taiga", "coniferous_forest"},
1797c2021
< 	"mountains, ridges, nofloatlands"
---
> 	"mountains, ridges, nofloatlands, caverns, biomerepeat"
1799a2024
> local captures_nobiorep = string.match(mgv7_spflags, "nobiomerepeat")
1801,1802c2026,2031
< local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
< local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
---
> -- Get setting or default
> -- Make global for mods to use to register floatland biomes
> default.mgv7_floatland_level =
> 	minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
> default.mgv7_shadow_limit =
> 	minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
1808a2038
> 
1810,1811c2040
< 	default.register_mgv6_blob_ores()
< 	default.register_ores()
---
> 	default.register_mgv6_ores()
1813,1818c2042,2051
< elseif mg_name == "v7" and captures_float == "floatlands" and
< 		captures_nofloat ~= "nofloatlands" then
< 	-- Mgv7 with floatlands
< 	default.register_biomes(mgv7_shadow_limit - 1)
< 	default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit)
< 	default.register_blob_ores()
---
> elseif mg_name == "v7" and
> 		captures_float == "floatlands" and
> 		-- Need to check for 'nofloatlands' because that contains
> 		-- 'floatlands' which makes the second condition true.
> 		captures_nofloat ~= "nofloatlands" and
> 		captures_nobiorep == "nobiomerepeat" then
> 	-- Mgv7 with floatlands and floatland biomes
> 	default.register_biomes(default.mgv7_shadow_limit - 1)
> 	default.register_floatland_biomes(
> 		default.mgv7_floatland_level, default.mgv7_shadow_limit)
1823d2055
< 	default.register_blob_ores()
